[Linear Algebra] Appendix

Linear Algebra
Author

신호연

background

Total Derivative

  • 다변수 스칼라함수를 생각해보자. 즉 2개이상의 변수가 input이며 ouput은 하나의 스칼라인 함수이다.
  • 만약 함수를 이루는 모든 변수가 각각 조금씩 바뀐다면? \(\to\) 함숫값도 작지만 아주 조금 변화할 것이다.
  • 전미분은 위와 같은 상황 즉, 다변수 함수의 모든 변수가 조금씩 변화했을때 함숫값의 변화량을 근사하는 양이다.(from wikipedia)
    • 다변수함수의 미소증분
Definition of total derivative
\[\begin{aligned} &df = \frac{\partial{f}}{\partial{x_1}}dx_1+\frac{\partial{f}}{\partial{x_2}}dx_2+\dots+\frac{\partial{f}}{\partial{x_n}}dx_n \\ &\text{where } f : \mathbb{R}^n \rightarrow \mathbb{R} \end{aligned}\]

추가설명(엄밀한 notation 제외)

  • 편미분 \(\frac{\partial{f}}{\partial{x}}\)는 임의의 변수 x의 단위변화량이다.
    • x를 매우 미소하게 증가시키고 : \(x \overset{+dx}{\to} x+dx\)
    • 이에 따라서 f가 얼마나 변화했는지 그 양을 측정한 뒤 : \(f(x+dx) - f(x)\)
    • x가 1만큼 증가하면 얼마나 f는 변화해?”를 측정한 값(비율)이다. : \(\frac{f(x+dx) - f(x)}{dx}\)
      • 하나의 변수 x의 매우 조그마하고 순간적인 변화에 의해 함숫값의 변화가 아주 조금 변할 때
      • 이러한 조그마한 변화가 변수가 1만큼 증가하는 것을 기준으로 삼는 경우에는 얼마정도 일지 측정한 단위(길이에 대한)변화량이다.
      • 느낌 : 이런 순간적인 변화를 1만큼 계속 유지하면 얼마나 변화할까?
    • 정리하자면 임의의 단일변수의 미소변화에 대한 단위변화량이다.(딱딱한 정의)
    • 여러개의 변수가 있지만 하나의 변수만 조금 변화시킨뒤 측정한다.(그래서 미분이다.)
    • 사실 식이 엄밀하진 않다.위의 표현은 상미분에 대한 표현이다.
    • 자세한 표현식은 wiki를 참조하자.
  • 단위변화량을 어떤 값과 곱해주면 변화량이 나온다.
    • 밥을 100g먹으면 몸무게가 5kg 찐다고 하자.(ㅜㅜ억울한 상황이다.)
    • 그렇다는 것은 1g먹으면 0.05kg이 찐다는 것을 암시하며
    • 이는 밥(x) 1g에 대한 몸무게(f)의 단위변화량은 0.05kg이다. \(\Longleftrightarrow= \frac{\partial f}{\partial x} = 0.05\)
      • 밥 300g 먹으면? \(\frac{\partial f}{\partial x}300 = 0.05 \times 300 = 15\)
      • 밥 0.03g 먹으면? \(\frac{\partial f}{\partial x}0.03 = 0.05 \times 0.03 = 0.0015\)
      • \(db\)만큼(진짜조금) 먹으면? \(\frac{\partial f}{\partial x}db = 0.05 \times db\)
  • 변화를 시키는 여러가지 요인을 전부 고려하면?
    • 밥(\(x_1\))도 조금먹고 물도 조금(\(x_2\))먹고 조금 자다가(\(x_3\)) 운동도 조금(\(x_4\))하면 몸무게(f)가 어떻게 될까??
    • \(df = \frac{\partial{f}}{\partial{x_1}}dx_1 + \frac{\partial{f}}{\partial{x_2}}dx_2 + \frac{\partial{f}}{\partial{x_3}}dx_3 + \frac{\partial{f}}{\partial{x_4}}dx_4\)

Lagrange multiplier

추후 정리

Scalar를 Vector로 미분

Definition

  • 다음과 같이 길이가 2인 벡터가 input이고 하나의 값을 output하는 스칼라함수를 생각해보자.
  • 이 함수는 다른 시각으로 2개의 변수를 input으로 받는 다변수 스칼라 함수로 생각할 수도 있다.
\[\begin{aligned} f\big(\begin{bmatrix}x_1 \\ x_2\end{bmatrix}\big) = f(x_1,x_2) \end{aligned}\]
  • 위와 같은 스칼라함수의 벡터에 대한 미분은 다음과 같이 정의된다.
다변수 스칼라함수의 벡터미분에 대한 정의
\[\begin{aligned} &\frac{\partial{f}}{\partial{x^T}} := \begin{bmatrix}\frac{\partial{f}}{\partial{x_1}} & \frac{\partial{f}}{\partial{x_2}} & \dots & \frac{\partial{f}}{\partial{x_n}}\end{bmatrix}\\ &\text{where } f:\mathbb{R}^n \to \mathbb{R}\,,x = \begin{bmatrix}x_1,x_2,\dots,x_n\end{bmatrix}^T \end{aligned}\]
  • \(\partial{x^T}\)일까?
    • input은 column vector인데 output은 row vector이다.
    • 그래서 눕혀서 transpose
  • 그런데 사실 많은 곳에서 notation을 헷갈리게 한다.
    • 미분의 결과를 column vector로 적는 곳도 많고
    • \(\partial{x^T}\)대신 \(\partial{x}\)로 적는 곳도 많다.
    • 그래서 그냥 함수를 이루는 모든 변수에 대해서 미분해본뒤 모아놓은 거구나 이렇게 기억해놓는게 좋다.

★쉽게 미분 구하기★

  • 정석적으로 구하려면 위의 정의에 해당하는 모든 component를 각각 편미분 취해서 구해줘야 한다.
  • 이건 너무 번거로운 과정이며 더 쉽게 구하는 방법이 있다.
  • \(df\)는 정의는 다음과 같다
\[\begin{aligned} &df := f(x+ dx) - f(x)\\ &\text{where } f:\mathbb{R}^n \to \mathbb{R},x = \begin{bmatrix}x_1,x_2,\dots,x_n\end{bmatrix}^T,dx = \begin{bmatrix}dx_1,dx_2,\dots,dx_n\end{bmatrix}^T \end{aligned}\]
  • 또한 \(df\)의 total derivative는 정의에 의해 다음과 같다.(두 번째 정의라고 생각해도 무방하다.)
\[\begin{aligned} df &:= \frac{\partial{f}}{\partial{x_1}}dx_1+\frac{\partial{f}}{\partial{x_2}}dx_2+\dots+\frac{\partial{f}}{\partial{x_n}}dx_n \\ &= \begin{bmatrix}\frac{\partial{f}}{\partial{x_1}} & \frac{\partial{f}}{\partial{x_2}} & \dots & \frac{\partial{f}}{\partial{x_n}}\end{bmatrix} \begin{bmatrix}dx_1\\dx_2\\ \vdots \\ dx_n \end{bmatrix}\\ &= \frac{\partial{f}}{\partial{x}^T}dx \end{aligned}\]
  • 두 정의를 모아서 정리해보자.

\[\begin{align} df &= f(x+ dx) - f(x) \\ &= \frac{\partial{f}}{\partial{x}^T}dx \end{align}\]

  • 그래서 어떻게 구할까?
    • (1)을 통해서 \(df\)를 계산한 후
    • (2)와 같은 형식을 어떻게든 만들고
    • dx앞에 있는 항이 원하는 미분이다.
  • 주의
    • \(f(x+dx)\)를 계산하는 과정에서 \(dx^Tdx,dx_1dx_2\)와 같은 2차 이상의 항이 나올 수 있다.
    • 이건 그냥 제외시키면 된다. 즉, 1차항만을 남기고는 싹 지우면 된다.
    • 왜 그럴까?(엄밀하지 않은 증명)
      • \(df = f(x+dx) - f(x) = dx^Tdx = dx^2\)라 해보자.(dx^2처럼 쓸 수 있다.)
      • 여기서 \(dx\)가 벡터가 아니라 스칼라라고 생각해보면 \(dx\)로 양변을 나눌 수 있다.
      • 양변을 \(dx\)로 나누고 (2)에 의하여 \(\frac{df}{dx} = dx = \frac{\partial f}{\partial x^T}\)이다.
      • 미분의 정의에 의해 \(dx \to 0\) 이므로 \(dx^2\)와 비슷한 2차이상의 항에 대한 \(\frac{\partial{f}}{\partial{x^T}} = 0\)이다.
      • 따라서 2차이상의 항이 나오면 \(\frac{\partial{f}}{\partial{x^T}} = 0\)이 될 것이므로 제외를 시켜줘도 된다.
      • 사실 벡터미분이기 때문에 나눠줄 수 없어서 엄밀한 증명은 아니다.

예시

  • \(f(x) = (y-Ax)^T(y-Ax)\)일때 \(\frac{\partial{f}}{\partial{x^T}}\)를 구해보자.

참고자료

혁펜하임 - [딥러닝] 5-1강. 스칼라를 벡터로 미분 | 10분 투자로 평생가는 실력!